package be.dch;

import be.dch.mkgmap.MkgmapConfig;
import be.dch.splitter.SplitterConfig;
import be.dch.srtm2osm.Srtm2OsmConfig;

public final class Config {

    private static Config instance = new Config();

    private transient MkgmapConfig mkgmapConfig;

    private transient SplitterConfig splitterConfig;

    private transient Srtm2OsmConfig srtm2OsmConfig;

    private Config() {
	this.mkgmapConfig = new MkgmapConfig();
	this.splitterConfig = new SplitterConfig();
	this.srtm2OsmConfig = new Srtm2OsmConfig();
    }

    /**
     * 
     * @return
     */
    public static Config getInstance() {
	return Config.instance;
    }

    public MkgmapConfig getMkgmapConfig() {
	return this.mkgmapConfig;
    }

    public void setMkgmapConfig(final MkgmapConfig mkgmapConfig) {
	this.mkgmapConfig = mkgmapConfig;
    }

    public SplitterConfig getSplitterConfig() {
	return this.splitterConfig;
    }

    public void setSplitterConfig(final SplitterConfig splitterConfig) {
	this.splitterConfig = splitterConfig;
    }

    public Srtm2OsmConfig getSrtm2OsmConfig() {
	return this.srtm2OsmConfig;
    }

    public void setSrtm2OsmConfig(final Srtm2OsmConfig srtm2OsmConfig) {
	this.srtm2OsmConfig = srtm2OsmConfig;
    }

    /**
     * 
     * @param config
     */
    public static void setConfig(final Config configuration) {
	Config.instance = configuration;
    }

}
